<!-- HTML header for doxygen 1.8.10-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<title>NATS C Client with JetStream and Streaming support: jsConsumerSequenceMismatch Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="customdoxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;" >
   <div id="projectname">NATS C Client with JetStream and Streaming support
   &#160;<span id="projectnumber">3.10.0-beta</span>
   </div>
   <div id="projectbrief">The nats.io C Client, Supported by Synadia Communications Inc.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('structjs_consumer_sequence_mismatch.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="structjs_consumer_sequence_mismatch-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">jsConsumerSequenceMismatch Struct Reference<div class="ingroups"><a class="el" href="group__types_group.html">Types</a></div></div></div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="nats_8h_source.html">nats.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:aad6a17af1719c023c38a6fd254b73f8e" id="r_aad6a17af1719c023c38a6fd254b73f8e"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_consumer_sequence_mismatch.html#aad6a17af1719c023c38a6fd254b73f8e">Stream</a></td></tr>
<tr class="memdesc:aad6a17af1719c023c38a6fd254b73f8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the stream sequence that the application should resume from.  <br /></td></tr>
<tr class="separator:aad6a17af1719c023c38a6fd254b73f8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb383429dadb1ab0e1f7d013bc546a28" id="r_adb383429dadb1ab0e1f7d013bc546a28"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_consumer_sequence_mismatch.html#adb383429dadb1ab0e1f7d013bc546a28">ConsumerClient</a></td></tr>
<tr class="memdesc:adb383429dadb1ab0e1f7d013bc546a28"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the consumer sequence that was last received by the library.  <br /></td></tr>
<tr class="separator:adb383429dadb1ab0e1f7d013bc546a28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1df353001d853c8a56cef9f82fb831c" id="r_ac1df353001d853c8a56cef9f82fb831c"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjs_consumer_sequence_mismatch.html#ac1df353001d853c8a56cef9f82fb831c">ConsumerServer</a></td></tr>
<tr class="memdesc:ac1df353001d853c8a56cef9f82fb831c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the consumer sequence last sent by the server.  <br /></td></tr>
<tr class="separator:ac1df353001d853c8a56cef9f82fb831c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This represents a consumer sequence mismatch between the server and client views.</p>
<p>This can help applications find out if messages have been missed. Without this and during a disconnect, it would be possible that a subscription is not aware that it missed messages from the server. When acknowledgment mode is other than <a class="el" href="group__types_group.html#gga8fcb50e6e7312834791f9e237d28e873afd91fe31cf57c68863ca3090b07c296c" title="Requires no acks for delivered messages.">js_AckNone</a>, messages would ultimately be redelivered, but for <a class="el" href="group__types_group.html#gga8fcb50e6e7312834791f9e237d28e873afd91fe31cf57c68863ca3090b07c296c" title="Requires no acks for delivered messages.">js_AckNone</a>, they would not. But even with an acknowledgment mode this may help finding sooner that something went wrong and let the application decide if it wants to recreate the subscription starting at a given sequence.</p>
<p>The gap of missing messages could be calculated as <code>ConsumerServer-ConsumerClient</code>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__js_sub_group.html#ga0daed9f0d2d00cb14314ecc180a6fa84" title="Returns the consumer sequence mismatch information.">natsSubscription_GetSequenceMismatch</a> </dd></dl>
</div><h2 class="groupheader">Member Data Documentation</h2>
<a id="aad6a17af1719c023c38a6fd254b73f8e" name="aad6a17af1719c023c38a6fd254b73f8e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad6a17af1719c023c38a6fd254b73f8e">&#9670;&#160;</a></span>Stream</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t jsConsumerSequenceMismatch::Stream</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="adb383429dadb1ab0e1f7d013bc546a28" name="adb383429dadb1ab0e1f7d013bc546a28"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb383429dadb1ab0e1f7d013bc546a28">&#9670;&#160;</a></span>ConsumerClient</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t jsConsumerSequenceMismatch::ConsumerClient</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ac1df353001d853c8a56cef9f82fb831c" name="ac1df353001d853c8a56cef9f82fb831c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac1df353001d853c8a56cef9f82fb831c">&#9670;&#160;</a></span>ConsumerServer</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint64_t jsConsumerSequenceMismatch::ConsumerServer</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="nats_8h_source.html">nats.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.10-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="structjs_consumer_sequence_mismatch.html">jsConsumerSequenceMismatch</a></li>
    <li class="footer">NATS.IO Supported By Synadia Communications Inc.
    <a href="http://www.nats.io">
    </a></li>
  </ul>
</div>
</body>
</html>
